/*
  将下面异步代码使用 Promise 的方法改进
  尽量用看上去像同步代码的方式
  setTimeout(function () {
    var a = 'hello'
    setTimeout(function () {
      var b = 'lagou'
      setTimeout(function () {
        var c = 'I ♥ U'
        console.log(a + b +c)
      }, 10)
    }, 10)
  }, 10)
*/
function getResult(param) {
  return new Promise((resolve, reject) => {
    try {
      setTimeout(function () {
        resolve(param)
      }, 10)
    } catch (e) {
      reject(e)
    }
  })
}
Promise.all([getResult('hello'), getResult('lagou'), getResult('I ❤ U')])
  .then(
    result => {
      result = result.reduce((prev, curv) => prev + curv, '')
      console.log(result)
    },
    error => {
      console.log(error)
    }
  )